Eecient Support for Customizing Concurrency Control in Persistent Java
نویسندگان
چکیده
We report on the issues raised when designing a customizable locking mechanism for Persistent Java, a type-safe, object-oriented, orthogonally persistent system based on the language Java. Customizable locking mechanisms are supported by locking capabilities. A locking capability is a book-keeper of locks that automatically acquires locks with a customizable connict detection mechanism. It implements the concepts of delegation of locks and ignorable connicts, automatically keeps track of the dependencies created because of allowance of connicts, supports querying of details about these dependencies, and supports the setting of user-deened notiications for connicts that can't be ignored. Locking capabilities don't change the Java language speciication, and allow use of any Java classes without changing a single line of their code to implement the body of transactions. We also present several novel techniques to implement eeciently this customizable locking mechanism in a persistent object system optimized for memory-residence of objects and navigational accesses.residence of objects.
منابع مشابه
Customizing Concurrency Controls using Graph of Locking Capabilities
As persistent object store technology reaches a mature state with respect to orthogonal persistence support, the lack of eecient and exible concur-rency control that could make them an attractive alternative to database systems is cruelly felt. In the search for more exibility, an increasing trend towards independent control over the basic transaction properties of atomicity, permanence and ser...
متن کاملThread Optimizations in Concurrent Object Oriented Languages Thread Optimizations in Concurrent Object Oriented Languages
Thread Optimizations in Concurrent Object Oriented Languages by Jing Wang With the current growth of the networks, distributed systems are becoming more and more popular. It is desirable to integrate heterogeneous machines into a coherent distributed system and to share resources among them. Scalable network computing also requires reliability, portability, and suitable programming abstractions...
متن کاملOptimizing the Read and Write Barriers for Orthogonal Persistence
Persistent programming languages manage volatile memory as a cache for stable storage, imposing a read barrier on operations that access the cache, and a write barrier on updates to the cache. The read barrier checks the cache residency of the target object while the write barrier marks the target as dirty in the cache to support a write-back policy that defers updates to stable storage until e...
متن کاملImplementing Orthogonally Persistent Java
Orthogonally persistent Java combines the power of abstraction over persistence with Java’s rich programming environment. In this paper we report our experience in designing and implementing orthogonally persistent Java. Our design approach is anchored by the view that any system that brings together Java and orthogonal persistence should as far as possible avoid diluting the strengths of Java ...
متن کاملConcurrency - The Fly in the Ointment?
Concurrency is a central pillar of the Java programming language, is implicit in the transactional model of computation adopted by most persistent systems, and has been widely studied in the context of orthogonal persistence. We argue that despite the substantial literature on concurrency control and transaction models for orthogonal persistence, a basic question as to the interaction between c...
متن کامل